Mainframe processing of data messages typically require the data be transformed or otherwise processed to properly format the data. For example, in a large enterprise, such as a financial institution, client applications, which may be internal or external (i.e., 3rd party or the like) may generate data request messages, which are communicated to the enterprise where they are processed (i.e., transformed or the like) prior to communicating the data request messages to a target system mainframe (typically a 3rd party) for subsequent processing of the request. In specific instances, the flow is bi-directional meaning the target system mainframe will return a data response message once the request has been processed. In such instances, the data response message will be processed (i.e., transformed or the like) prior to communicating the data response message to a designated storage location, which may be associated with the client application or independent of the client application. In other specific instances, the flow may be unidirectional meaning the target system mainframe receives and processes the data request message but no data response message is required to be returned.
In conventional data message processing, in order to transform/normalize data and perform other processes on the data (e.g., parsing/extraction and the like) the entire data message is read into a buffer, a tree is built and the entire tree is analyzed, resulting in two passes through the data message.
In high volume enterprise systems, such as a financial institution system, which may process thousands of data requests at any one point in time, such conventional data message processing, which entails two passes, is processing-intensive, thus resulting in an inefficient overall process.
Therefore, a need exists to develop systems, apparatus, computer program products, methods and the like that limit the complexity involved with processing (i.e., transforming/normalizing) the data messages. Specifically, the desired systems, apparatus, computer program products and methods should limit the processing for both bidirectional flows, in which data quest messages and data response messages are processed, as well as unidirectional flows in which only data requests messages are received and processed. Moreover, the desired systems, apparatus, computer program products and methods should more efficiently process the data messages by limiting the number of passes required to process the data and/or limit the data from being held in memory.